package com.feri.fitness.network.pay.service.impl;

import com.feri.fitness.common.config.SystemConfig;
import com.feri.fitness.common.dto.PayAddDto;
import com.feri.fitness.common.vo.R;
import com.feri.fitness.network.pay.core.AliPay;
import com.feri.fitness.network.pay.service.AliPayService;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import javax.annotation.Resource;
import java.util.Base64;

/**
 * ━━━━━━神兽出没━━━━━━
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　 ┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　  ┃
 * 　　┃　　　　　　 ┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛Code is far away from bug with the animal protecting
 * 　　　　┃　　　┃    神兽保佑,代码无bug
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━永无BUG!━━━━━━
 *
 * @Description:
 * @Author: 邢朋辉
 * @Date: 2023/1/10 10:12
 */
@Service
public class AliPayServiceImpl  implements AliPayService {

    @Override
    public R create(PayAddDto dto) {
        //1.验证
        if(dto!=null){
            //2.创建
            String url=AliPay.createQrCodePay(dto.getNo(),dto.getMoney(),dto.getTitle());
            //3.验证 结果
            if(StringUtils.hasLength(url)){
                //4.生成二维码 地址 返回 传递参数（包含url地址特殊符号，需要使用Base64URL编码格式）
                return R.ok(SystemConfig.PAY_QRCODE+"?u="+
                        Base64.getUrlEncoder().encodeToString(url.getBytes()));
            }
        }
        return R.fail();
    }

    @Override
    public R query(String no) {
        return R.ok(AliPay.queryPay(no));
    }
}
